package Pacote2;

import grails.test.*
import les.*

class MD5Tests extends functionaltestplugin.FunctionalTestCase {
	
	// Foi criada uma vis�o para mostrar a senha de um usu�rio, e 
	// ser� testada que a senha � armazenada criptografada
	void testCriptografada() {
		get ("/usuario/login")
		
		form() {
			email = "encontrosejc@gmail.com"
			senha = "123456"
			click "entrar"
		}
		
		get ("/usuario/teste_md5")
		
		assertContentContains "<td>encontrosejc@gmail.com</td><td>" + new String("123456".encodeAsMD5Hex()) + "</td>"
	}
	
	
	// Criar um usu�rio atrav�s do formul�rio do site e ver
	// a senha criptografada na p�gina de teste
	void testCriarUsuarioComCriptografia() {
		get ("/usuario/login")
		
		form() {
			email = "encontrosejc@gmail.com"
			senha = "123456"
			click "entrar"
		}
		
		get("/integrante/create")
		
		form() {
			nome = "asdqloashdq"
			vaiTerUsuario = "sim"
			usuarioEmail = "teste@teste.com"
			usuarioSenha = "abcdef"
			click "Criar"
		}
		
		get ("/usuario/teste_md5")
		
		assertContentContains "<td>teste@teste.com</td><td>" + new String("abcdef".encodeAsMD5Hex()) + "</td>"
	}
	
	// Alterar senha atrav�s do formul�rio do site e ver
	// a senha criptografada na p�gina de teste
	void testAlterarSenhaComCriptografia() {
		Usuario user = new Usuario(email: "novo@teste.com", senha: new String("98765".encodeAsMD5Hex()), tipo: "Jota")
		user.save()
		
		get ("/usuario/login")
		
		form() {
			email = "novo@teste.com"
			senha = "98765"
			click "entrar"
		}
		
		click "Alterar senha"

		form() {
			senha_atual = "98765"
			senha_nova = "joaopaulo"
			confirmar_senha = "joaopaulo"
			click "alterar"
		}
		
		get ("/usuario/teste_md5")
		
		assertContentContains "<td>novo@teste.com</td><td>" + new String("joaopaulo".encodeAsMD5Hex()) + "</td>"
	}
	
}
